#pragma once

#include <glad/glad.h>

#include <string>
#include <iostream>

class GLShader
{
    friend class GLProgram;
protected:
    unsigned int m_ID;

public:
    GLShader(const char* vertexPath, const char* fragmentPath, const char* geometryPath);
    unsigned int LoadShader(const char* path, GLenum type);
    void EnableShader();
    ~GLShader();

private:
    void checkCompileErrors(unsigned int shader, std::string type);
};